約 2,999,002 件
https://w.atwiki.jp/sqlpuzzle/pages/23.html
問題 Customers 顧客テーブル(customer_id 顧客ID, acct_balance 売掛金残高) Orders 注文テーブル(customer_id 顧客ID, order_id 注文ID) OrderDetails 注文明細テーブル(order_id 注文ID, item_id 製品ID, item_qty 注文数量) Products 製品テーブル(item_id 製品ID, item_qty_on_hand 現存数量) 全ての製品を購入した顧客全員の買掛金残高の平均と、全てではないがいくつかの製品を購入した顧客全員の買掛金残高の平均を求めたい。 *chiakiさんの答え ※chiakiさんはゼミ準備で大学に来れなかったので、以下のSQLは検証してません。次の見出しで検証を行います。 二つの平均を同時に出力する方法を思いつかなかったので、それぞれの場合についてSQL文を考えた。 全ての製品購入 SELECT avg(C.acct_balance) FROM Customers C, Order O, OrderDetails D, Product P WHERE count(DISTINCT D.item_id) = ( SELECT count(*) FROM Products ) AND D.item_id = P.item_id AND O.order_id = D.order_id AND C.customer_id = O.customer_id GROUP BY O.customer_id 考え方 Customer_idでグループ化し、顧客それぞれについて製品総数と等しいかどうか調べる いくつかの製品購入 SELECT avg(C.acct_balance) FROM Customers C, Order O, OrderDetails D, Product P WHERE count(DISTINCT D.item_id) ( SELECT count(*) FROM Products ) AND count(DISTINCT D.item_id) 0 AND D.item_id = P.item_id AND O.order_id = D.order_id AND C.customer_id = O.customer_id GROUP BY O.customer_id 考え方 Customer_idでグループ化し、顧客それぞれについて製品総数より少ないかどうか調べる kunさんの答え 2008年04月08日12時10分34秒.pdf すべての製品購入 select avg(acct_balance) from ( select acct_balance from ( select * from customers c , orders o , orderdetails od where o.order_id = od.order_id and o.customer_id = c.customer_id)i1)i2 group by customer_id having count(distinct item_id) = (select count(*) from products); 考え方 customers , orders , orderdetailsを自然結合する。 customer_idでグループ化し、それぞれのグループのitem_idの数が製品の種類の数と等しければ、すべての製品を購入した顧客が求まる。(製品のすべての種類の数は一番内側のサブクエリで求まる) 以上をサブクエリとして、ずべての製品を購入した顧客のcustomer_idとacct_balanceのテーブルを返す。 一番外側のselect句はそれらのacct_balanceの平均値を出力する。 結果 エラーが出ました! ERROR column i2.item_id does not exist 行 8 having count(distinct i2.item_id) = (select count(*) ^ いくつかの製品購入 select avg(acct_balance) from ( select acct_balance from ( select * from customers c , orders o , orderdetails od where o.order_id = od.order_id and o.customer_id = c.customer_id)i1)i2 group by customer_id having count(distinct item_id) (select count(*) from products); 考え方 すべての製品購入のクエリと同じ考え方だが、havingの条件はitem_idの数が製品のすべての種類の数と等しくないものに書き変える。 結果 エラーが出ました! ERROR column "item_id" does not exist 行 8 having count(distinct item_id) (select count(*) ^ ☆おさらい☆ ★FUMIKOさんが解説してくれた解2とYUKAさんが考えた解のコストを比較します。「explain」を使ってSQL文の処理を見ます。 postgres使用 解2をEXPLAINした結果 Aggregate (cost=108142.67..108142.68 rows=1 width=14) (actual time=0.649..0.64 9 rows=1 loops=1) InitPlan - Aggregate (cost=34.25..34.26 rows=1 width=4) (actual time=0.063..0.063 rows=1 loops=1) - Seq Scan on products (cost=0.00..29.40 rows=1940 width=4) (actua l time=0.004..0.006 rows=3 loops=1) - Seq Scan on customers c1 (cost=0.00..108104.50 rows=1562 width=14) (actu al time=0.379..0.606 rows=4 loops=1) Filter ($0 (subplan)) SubPlan - Aggregate (cost=68.83..68.84 rows=1 width=4) (actual time=0.082. .0.082 rows=1 loops=6) - Hash Join (cost=34.38..68.80 rows=9 width=4) (actual time= 0.038..0.043 rows=2 loops=6) Hash Cond (orderdetails.order_id = orders.order_id) - Seq Scan on orderdetails (cost=0.00..27.70 rows=1770 width=8) (actual time=0.002..0.007 rows=11 loops=4) - Hash (cost=34.25..34.25 rows=10 width=4) (actual tim e=0.015..0.015 rows=1 loops=6) - Seq Scan on orders (cost=0.00..34.25 rows=10 w idth=4) (actual time=0.005..0.006 rows=1 loops=6) Filter (customer_id = $1) Total runtime 20.154 ms YUKAさんの解をEXPLAINした結果 fumiko=# explain fumiko-# select avg(C1.acct1),avg(C2.acct2) fumiko-# from( fumiko(# select C.acct_balance as acct1 fumiko(# from Customers as C,Orders as O,OrderDetails as OD,Products as P fumiko(# where C.customer_id = O.customer_id fumiko(# and O.order_id = OD.order_id fumiko(# group by C.customer_id fumiko(# having count(DISTINCT OD.item_id) = count(DISTINCT P.item_id)) as C1, fumiko-# ( fumiko(# select AVG(C.acct_balance) as acct2 fumiko(# from Customers as C,Orders as O,OrderDetails as OD,Products as P fumiko(# where C.customer_id = O.customer_id fumiko(# and O.order_id = OD.order_id fumiko(# group by C.customer_id fumiko(# having count(DISTINCT OD.item_id) count(DISTINCT P.item_id)) as C2; ERROR column "c.acct_balance" must appear in the GROUP BY clause or be used in an aggregate function from句内の一つ目の問い合わせでなぞのエラーが出ました。
https://w.atwiki.jp/wrtb/pages/2457.html
Mickey's Crossword Puzzle Maker 原題:Mickey's Crossword Puzzle Maker 発売:1991年 開発:レガシーシステム 機種:MS-DOS*、Apple II* 概要 コンピューター用のクロスワードパズルゲーム。日本未発売。 対戦相手は3人から選ぶことができ、グーフィー、ドナルドダック、ミッキーマウスの順に手強くなる。 キャラクター ミッキーマウス ドナルドダック グーフィーバンビ アリス チェシャ猫 ピーター・パン ティンカー・ベル 楽曲 ジッパ・ディー・ドゥー・ダー 星条旗よ永遠なれ*
https://w.atwiki.jp/xbox360score/pages/1912.html
Double Dragon II Wander of the Dragons 総項目:12 総ポイント:400 難易度: 製品情報:マーケットプレース 配信日:2013年4月5日 DL費用:800MSP ジャンル:アクション アドベンチャー, 格闘 国内マーケットプレースで配信されているが、ゲーム本編・実績共に未翻訳。 Helpless Observer Witness Marian's death in story mode(story modeでマリアンの死を目のあたりにする) 20 Explosion of Rage Find Marian's necklace in the Heliport.(Heliportでマリアンのネックレスを発見する。) 20 Just Like Old Times Find the Tree of Memories in the Field of Death.(Field of DeathでTree of Memoriesを発見する。) 20 Revenge-No Mercy Complete the game on story mode.(story modeをクリアする。) 30 Rest in Peace-Mercy Complete the game on story mode without using any special attacks.(special attackを一切使わずにstory modeをクリアする。) 60 Avengers Complete story mode in co-op.(co-opでstory modeをクリアする。) 30 Almost Equal End 3 successive rounds in a draw in VS mode.(VS modeにおいて3ラウンド連続でドローで終わらせる。) 20 Invincible Complete final stage on the Hard difficulty setting.(難易度Hardで最終ステージをクリアする。) 60 Just Like Bruce Lee Successfully execute 5 power attacks in a row.(5人連続でpower attackで敵にとどめを刺す。) 40 Legendary Master Clear any stage with a hit ratio 100 1(land 100 attacks for every hit you take) or higher .(いずれかのステージをhit ratio 100 1(自分の被ダメージ1回に対し敵への攻撃ヒット100回)以上の割合でクリアする。) 40 Die Hard Clear a stage with no health points left.(体力ゲージが全く残っていない状態でステージをクリアする。) 40 Survivor Defeat 150 enemies in survival mode.(survival modeで150人の敵を倒す。) 20
https://w.atwiki.jp/mtgwiki/pages/1418.html
《Thunder Dragon》 #whisper 全体火力を内蔵したドラゴン。 他のドラゴンのせいもあり、一見ちょっと地味な気がするかもしれないが、同じくポータル系出身のマグマの巨人/Magma Giantと比べるとコスト・パフォーマンスは良好と言うことが分かる。 それに3点ダメージなので、ウィニーを焼き払うには十分な性能。 また、プレイヤーにダメージが入らないのも紅蓮地獄/Pyroclasmよろしく使い方次第でメリットに。 サイズも5/5飛行と悪くないため、リミテッドでも強いのだが正直スターターでリミテッドをするのは相当に稀だろう。 手札からプレイしなくても能力は誘発するので、他の方法で場に出てもダメージを与えられる。ドラゴンの嵐/Dragonstormで複数体呼び出し、場を制圧してみてはどうだろうか。 第10版を選ぼう第7週に登場。様々なエキスパンションから選出された大勢のドラゴン達と再録を争うが、シヴのヘルカイト/Shivan Hellkiteに得票数2位まで迫るものの敗れ第10版再録と初和名獲得の機会を逃す。 参考 カード個別評価:ポータル系、スターター
https://w.atwiki.jp/sqlpuzzle/pages/24.html
問題 役職テーブルRolesから、重役 D 役員 O 、二役を兼務する人物 B を出力する person | role person | role -------+------ -------+------ Smith | O Smith | B Smith | D Jones | O Jones | O → White | D White | D Brown | X fumikoの回答1 SQL文 SELECT (case when R1.person is null then R2.person else R1.person end), (case when R1.role is null then D when R2.role is null then O else B end) as combined_role FROM (select person,role from Roles where role = O ) as R1 full outer join (select person,role from Roles where role = D ) as R2 on R1.person = R2.person 考え方 role = O だけのテーブル(R1)、role = D だけのテーブル(R2)をそれぞれ作成 ふたつのテーブルをpersonで全外部結合する(R3) person | role | person | role --------+------+--------+------ Jones | O | | Smith | O | Smith | D | | White | D R1.personがnullならR2.personを、R2.personがnullならR1.personを出力 R1.roleがnullならroleは D R2.roleがnullならroleは O それ以外は B を出力 実行結果 person | combined_role -------+--------------- Jones | O Smith | B White | D fumikoの回答2 SQL文 SELECT person, (case when count(*) = 2 then B else r1.role end) FROM (select person,role from Roles where role = O or role = D ) as r1 GROUP BY person; 考え方 roleが O または D の人のテーブルを作成(↓r1) person | role -------+------ Smith | O Smith | D Jones | O White | D personごとにGROUP BYして、count(*) = 2ならO,D兼任のはずなのでrole = B 、count(*) = 1ならroleをそのまま出力 実行結果 ERROR column "r1.role" must appear in the GROUP BY clause or be used in an aggregate function →groupbyしているので、そのグループ内に複数の値があることを考えて、r1.roleのように特定の値を指定することはできない satomiの回答 SQL文 SELECT person, (CASE WHEN count(*)=2 THEN B WHEN role= D THEN D WHEN role= O THEN O END) as combined_role FROM Roles WHERE role in ( D , O ) GROUP BY person; 考え方 personでグループ化 Rolesから、役職がDまたはOの者だけ選ぶ countが2の人は、2役を兼務していると考えられるのでB roleがDの人はD roleがOの人はO 実行結果 --------+--------------- person | combined_role --------+--------------- Jones | O Smith | B White | D --------+--------------- chiakiより補足 プレゼンした解答の、コストや実行結果についての補則です。 実行結果エラー 解答1のままだと、次のようなエラーが出てしまいます。 ERROR column "r1.role" must appear in the GROUP BY clause or be used in an agg regate function (Posgre) なので、SELECT節で、R1.roleをただ出力するのではなく、 R1.roleの最大値を取って出力すると、うまくいきました。 sql=# SELECT R1.person, max(R1.role) sql-# FROM Roles AS R1 sql-# WHERE R1.role IN ( D , O ) sql-# GROUP BY R1.person sql-# HAVING COUNT ( DISTINCT R1.role ) = 1 sql-# UNION sql-# SELECT R2.person, B sql-# FROM Roles AS R2 sql-# WHERE R2.role IN ( D , O ) sql-# GROUP BY R2.person sql-# HAVING COUNT ( DISTINCT R2.role ) = 2; person | max Jones | O Smith | B White | D (3 行) 解答4も同じように書き換える必要がありました。 また、解答6はうまく結果が表示されませんでした。 PostgreSQL では、型チェックが厳しく、 SUM 関数の戻り値を整数型に変換しないと正しく動かないので注意。 と書いてあったので、SQLを少し変えてみました。 sql=# SELECT person, sql-# SUBSTRING ( DOB , CAST(SUM (POSITION (role IN DO )) AS INTEGER), 1 ) sql-# FROM Roles sql-# WHERE role IN ( D , O ) sql-# GROUP BY person; person | substring Jones | O Smith | B White | D (3 行) また、コスト計算をすると、解答4,5,6が速そうでした。解答1が一番遅いようです。
https://w.atwiki.jp/hoot2ch/pages/362.html
game name PUZZLE BOBBLE(パズルボブル) /name driver type = "generic" neogeo /driver romlist archive = "pbobblen" rom type = "code" offset = "0x0000" 083-m1.bin /rom rom type = "adpcm" offset = "0x200000" 083-v3.bin /rom rom type = "adpcm" offset = "0x300000" 083-v4.bin /rom /romlist titlelist title code = "0x5F" Neo Geo Logo /title title code = "0x29" タイトルデモ /title title code = "0xCD" READY? /title title code = "0xCE" GO! /title title code = "0x21" パオパオ島へ行こう! (BGM1) /title title code = "0x24" 4月の森 (BGM2) /title title code = "0x23" クリア /title title code = "0x26" コンティニュー /title title code = "0x27" エンディング /title title code = "0x22" ゲームオーバー /title title code = "0x28" エンディング (イントロなし) /title title code = "0x31" ??? /title title code = "0x32" ??? /title title code = "0x33" ??? /title title code = "0x34" ??? /title title code = "0x35" ??? /title title code = "0x36" ??? /title /titlelist /game
https://w.atwiki.jp/akatonbowiki/pages/3162.html
このページはこちらに移転しました LogicPuzzle 作詞/41スレ521 The logical is meaning of making sence of the world The puzzle is meaning of confusing sence of the world The Cheshire cat laughs the sence of the world The old Caterpilar annoys the sence of the world It isn't difficult isn't it? cheshire laughs at the girl It must be annoying us must'nt it? caterpilar says at the girl World is logical however World is unlogical World can solve however World cannot solve World is annoying and World is laughing (このページは旧wikiから転載されました)
https://w.atwiki.jp/boardgame/pages/14.html
Dragon Compendium(DC) Dragon誌からのルールの抜粋集。 バランスの取れているルールが集められたと信じたいところ。実際は人気記事の集合体だったかな。 延び延びになっていたが、意を決して購入。 フィート 条件付で相手の攻撃が失敗した場合にAoOを喚起するフィートや、ポールウェポンをショートレンジで使いこなすフィートが前衛には面白い。ポールアームをMonkが振り回せたりするのも夢があるかな。 プレステージクラス MagicMissileを専門家したイメージのプレステージクラスが収録されていた。 モンスター 精霊デーモンが収録されていたのがいい。円らな瞳が印象的。
https://w.atwiki.jp/sqlpuzzle/pages/20.html
問題 kunさんの答え 2008年04月01日18時28分59秒.pdf サブクエリでやりたいこと→一人暮らしでない人のidの集合を出したい このクエリでやりたいこと→一人暮らしでない人で、且fam IS NULLなら世帯主。 やりたいことはわかるのだけれども、サブクエリのSelect節のcon_idはグループ化されたもので統一である値か集約値しかもってこれないはずなので、これではエラーになるのでは。 mysqlで試してみた(chiemin) とりあえずサブクエリだけ。 mysql select con_id from Consumers group by address having count(*) =2; +--------+ | con_id | +--------+ | 1 | | 3 | +--------+ 2 rows in set (0.00 sec) 偶然だけど、世帯主だけ出ちゃいました。これは世帯主が偶然一番最初に挿入されていたから。mysqlの場合はSelect節に集約値以外の属性が来た場合はグループの一番最初のタプルの値を出すみたいです。多分。 ゼミ中に出たコメント この問題って何がやりたいんだろう…世帯主だけにメールを送るだけならわかるんだけど、世帯主を削除しちゃうって…なぜ? せっかく人のIDと世帯主の参照IDがあるのにaddressが一致するかどうかで同じ世帯に住んでいることを決めてしまってよいのか? 例えば2世帯住宅とかという場合はないのだろうか? 1人住まいでない世帯主を求める問合せ SELECT c1.con_id FROM Consumers c1, Consumers c2 WHERE c1.con_id = c2.fam でもこれだとこの問題ならいいけど(親子関係が一階層だから)、任意の階層を持ってたりしたらまずいよね(木構造みたいに) その辺はどうやらこのテーブルの設計自体がSQL向きでないもよう(サポートページより) コメント 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/ddrdp/pages/567.html
Dragon Blade(楽) 曲名 アーティスト フォルダ 難易度 BPM NOTES/FA(SA) その他 Dragon Blade Kozo Nakamura SN 楽9 240 248 / 1 STREAM VOLTAGE AIR FREEZE CHAOS 53 40 9 3 1 楽譜面(9) / 踊譜面(11) / 激譜面(11) / 鬼譜面(-) 属性 渡り、リズム難、縦連 譜面 http //eba502.web.fc2.com/fumen/ddr/sn1/dragon_b_8b.html 解説 歯切れの4分で終始渡らせる譜面で、BPMを考えると結構な難易度。またBPM故に合わせ難く音合せ裏拍などもありスコア難易度が高い -- 名無しさん (2013-12-12 22 22 01) 名前 コメント コメント(私的なことや感想はこちら) 名前 コメント